Comparing Future Red Tide Scenarios

For this test run, I took the SEDAR Red Grouper stock assessment and used SSMSE to introduce future red tide events in the OM and EM. There were 6 total scenarios:

  1. No red tide X no red tide: the base stock assessment with red tide events in 2005 and 2014.
  2. No red tide X 2 red tide: red tide in 2018 and 2021 in the EM.
  3. 2 red tide X 2 red tide: red tide in 2018 and 2021 in the OM and EM.
  4. 2 red tide X no red tide: red tide in 2018 and 2021 in the OM, but not in the EM.
  5. 2 red tide X no red tide: red tide in 2018 and 2021 in the OM and fixed in the EM.
  6. No red tide X all years red tide: no red tide in OM, all years red tide in EM.
  7. 2 red tide X all years red tide: red tide in 2018 and 2021 in OM, all years red tide in EM.
  8. red tide every 3 years X all years red tide: red tide every 3 years in OM starting in 2018, all years red tide in EM.

Import the results and summary files from the cloud.

Raw Data

Reviewing time series plots

List of the things we can plot with the ts_plot_variable function:

 [1] "year"                 "Area"                 "Seas"                
 [4] "Bio_smry"             "SpawnBio"             "Recruit_0"           
 [7] "retainB_1"            "retainN_1"            "retainB_2"           
[10] "retainN_2"            "retainB_3"            "retainN_3"           
[13] "retainB_4"            "retainN_4"            "retainB_5"           
[16] "retainN_5"            "deadB_1"              "deadN_1"             
[19] "deadB_2"              "deadN_2"              "deadB_3"             
[22] "deadN_3"              "deadB_4"              "deadN_4"             
[25] "deadB_5"              "deadN_5"              "F_1"                 
[28] "F_2"                  "F_3"                  "F_4"                 
[31] "F_5"                  "SPRratio"             "rec_dev"             
[34] "raw_rec_dev"          "model_run"            "iteration"           
[37] "scenario"             "end_year"             "years_until_terminal"

Here are the time series plots:

Figure 1. The fishing mortality of fleet 5 over time. This line plot demonstrates the frequency and magnitude of red tide events in the EM (black) and OM (orange) for each scenario. All 10 iterations of the OM and EM are plotted simultaneously so peaks are representative of the iteration with the highest value and not the overall trend. The OMs have fixed magnitudes and the EMs estimate a F_5 that varies in magnitude but has a median close to the fixed value in the OM.

Table 1. A summary of the Operating Model fleet 5 fishing mortality. These statistics only include values where F_5 > 0.

Scenario Mean Standard Dev Median
rt_2_x_no_rt 0.1 0 0.1
rt_2_x_rt_2 0.1 0 0.1
rt_2_x_rt_2_fixed 0.1 0 0.1
rt_2_x_all_yrs 0.1 0 0.1
rep_3_x_all_yrs 0.1 0 0.1

Table 2. A summary of the Estimated Model fleet 5 fishing mortality. These statistics only include values where F_5 > 0.

Scenario Mean Standard Dev Median
no_rt_x_rt_2 0.015 0.036 0.000
rt_2_x_rt_2 0.070 0.080 0.037
rt_2_x_rt_2_fixed 0.100 0.000 0.100
no_rt_x_all_yrs 0.008 0.027 0.000
rt_2_x_all_yrs 0.011 0.031 0.000
rep_3_x_all_yrs 0.033 0.064 0.000

Figure 2. The biomass of fish killed by red tide over time. This line plot demonstrates the biomass removed by red tide. While fishing mortality is fixed in the OM, the biomass removed can vary depending on the available biomass.

Figure 3. The spawning stock biomass (SSB) over time. These plots best demonstrate the effects of the red tide mortality on the spawning availability, with the increased frequency and magnitude of red tides resulting in lower SSB.

Figure 4. The total retained biomass of the fishery over time. This is the sum of all columns starting with “RetainB” so it does not include discards or red tide mortality. This plot demonstrates how impactful high mortality events can reduce catch.

Reviewing derived quantities

Additional time series plots but derived quantities. Below is a list of all the derived quantity variables:

 [1] "Value.SSB"            "Value.Recr"           "Value.SPRratio"      
 [4] "Value.F"              "Value.Bratio"         "Value.ForeCatch"     
 [7] "Value.OFLCatch"       "Value.ForeCatchret"   "Value.lnSPB"         
[10] "year"                 "model_run"            "iteration"           
[13] "scenario"             "end_year"             "years_until_terminal"

Figure 5. Recruitment over time by scenario. Recruitment is determined by the Beverton-Holt equation using steepness, R0, and SigmaR. Steepness is fixed at 0.99. R0 and SigmaR were estimated in SEDAR 61 and SEDAR 88.

Figure 6 (same as figure 3). The spawning stock biomass (SSB) over time. These plots best demonstrate the effects of the red tide mortality on the spawning availability, with the increased frequency and magnitude of red tides resulting in lower SSB.

Figure 7. The Spawning Potential Ratio (SPR) over time by scenario. This is the spawning output with fishing:the spawning output without fishing so it is a higher value when the reproductive potential is high. SPR tends to spike when there is a red tide event.

Figure 8. The BRatio over time by scenario. The BRatio is the current SSB over the unfished SSB so the value indicates the status of the SSB relative to a unfished scenario. This can be usefull if there is a reference point for BRatio like 0.2 as a cut-off for overfished. Higher frequencies and magnitudes of red tide cause a BRatio less than 0.2 more often.

Figure 9. The total fishing mortality over time by scenario. The default scenario indicates that fishing over time has low variability. When Red tide events are introduced, the variability increases drastically as F includes red tide mortality. Since red tide is a by-catch fleet, it is included in this value.

Ratio Time Series

Fishing mortalities

My new method for plotting EM:OM involves creating separate OM and EM data frames, joining them by year, scenario, and iteration, then dividing the EM value/ OM value for every variable. That way when plotted it is truly the EM for each model run, year and iteration divided by the OM from the same year and iteration but one model run. If the om and em value are zero I changed the ratio to 1 because that means that the EM = OM.

Figure 10. Each fleet’s fishing mortality ratio (EM:OM) over time by scenario. The line indicates the median and the ribbon is the 25-75% quartiles. F_5 is consistently underestimated, it is more underestimated in future years where there is less data.

F_5

A zoomed in look at just F_5 from the previous plots.

Figure 11. Red tide mortality ratio (EM:OM) over time by scenario. The line indicates the median and the ribbon is the 25-75% quartiles. Red tide mortality is consistently underestimated, it is more underestimated in future years where there is less data.

F

All the F’s added together from the previous plots.

Figure 11B. Overall mortality ratio (EM:OM) over time by scenario. The line indicates the median and the ribbon is the 25-75% quartiles. Red tide mortality is consistently underestimated, it is more underestimated in future years where there is less data.

Version #2 using the F.Value from dqs

Biomass

Figure 12. Biomass ratio (EM:OM) over time by scenario. The line indicates the median and the ribbon is the 25-75% quartiles. Red tide mortality is consistently underestimated, it is more underestimated in future years where there is less data.

Recruitment

Figure 13. Recruitment ratio (EM:OM) over time by scenario. The line indicates the median and the ribbon is the 25-75% quartiles. Recruitment is not over or underestimated, but there are a few outliers where the EM overestimated by 10x.

SSB

Figure 14. SSB ratio (EM:OM) over time by scenario. The line indicates the median and the ribbon is the 25-75% quartiles. SSB is not over or underestimated, but it is more likely to be overestimated, the later years are overestimated. SSB may spike in response to red tide events based on the red_tide_regular_5_mortality_5 scenario.

Terminal Year

Plotting the same ratios as above but by the “time from the terminal year” instead of year. These plots use mean instead of median because there were too many “years until terminal” with no red tide which skewed to 1 and resulted in straight lines. F_5 in all of these plots was a straight line when median was used.

Fishing Mortality

Figure 15. Each fleet’s fishing mortality ratio (EM:OM) over the years from terminal year by scenario. The line indicates the mean and the ribbon is the 25-75% quartiles. F_5 is consistently underestimated, there is higher variation where there is less data.

F_5

A zoomed in look at just F_5 from the previous plots.

Figure 16. Red tide mortality ratio (EM:OM) over the years from terminal year by scenario. The line indicates the mean and the ribbon is the 25-75% quartiles. F_5 is consistently underestimated, there is higher variation where there is less data.

Biomass

Figure 17. Biomass ratio (EM:OM) over the years from terminal year by scenario. The line indicates the mean and the ribbon is the 25-75% quartiles. Red tide mortality is consistently underestimated, it is more underestimated in years where there is less data.

Recruitment

Figure 18. Recruitment ratio (EM:OM) over time by scenario. The line indicates the mean and the ribbon is the 25-75% quartiles. Recruitment is overestimated in the terminal year of the model run.

SSB

Figure 19. SSB ratio (EM:OM) over the years from the terminal year by scenario. The line indicates the mean and the ribbon is the 25-75% quartiles. SSB is underestimated when red tide is introduced, with higher variability in the terminal year of the default model.

Management

Term Plots

Figure 20. Term plots are meant to be a “short term” (2000-2030) and “long term” (1989-2067) look at a few key parameters from the time series dataset. These plots demonstrate that red tide events correspond with SPR Ratio spikes, and can slowly decrease retained biomass or spawning biomass in the short term. In the long term, there are no trends.

Management Term Plots

Figure 21. Management Term plots are meant to be a “short term” (2000-2027) and “long term” (1989-2067) look at a few key parameters from the time series dataset. These plots demonstrate that red tide events correspond with SPR Ratio spikes, and can slowly decrease retained biomass or spawning biomass in the short term. In the long term, there are no trends. I tried to add median trend lines for the OM and EM but they aren’t very clear because of how the lines are colored.

Relative Error Plots

Inspired by Wetzel and Punt et al. 2011

I am going to attempt to make their Relative Error Plots.

RE = (E - T) / T

Warning: Removed 3300 rows containing non-finite outside the scale range
(`stat_boxplot()`).

Warning: Removed 3300 rows containing non-finite outside the scale range
(`stat_boxplot()`).

Figure 21. Relative error plots for each variable of interest zoomed in.

Warning: Removed 3300 rows containing non-finite outside the scale range
(`stat_boxplot()`).
Removed 3300 rows containing non-finite outside the scale range
(`stat_boxplot()`).

Figure 22. Relative error plots of each variable of interest on the same patchwork.

Figure 23. Relative error plots of each variable of interest with fixed x-limits between -2 and 5.

Red Tide Magnitudes and Frequencies

The sums and counts of each red tide treatment to see which are comparable.

# A tibble: 8 × 4
  scenario          n_years F_5_sum catch_sum
  <fct>               <int>   <dbl>     <dbl>
1 rt_2_x_no_rt            2    0           0 
2 rt_2_x_rt_2             2   16.1    214345.
3 rt_2_x_rt_2_fixed       2   19.0    246027.
4 rt_2_x_all_yrs          2   28.5    455842.
5 rep_3_x_all_yrs        10   57.2    838258.
6 no_rt                  NA    0           0 
7 no_rt_x_rt_2           NA    3.31    47462.
8 no_rt_x_all_yrs        NA   20.3    378787.

Table 3. The magnitudes and frequencies of each scenario with the summarized catch to demonstrate scale differences.

MAPE

Mean Average Percentage Error

Inspired by

Notes: When there is no red tide in the OM, a matching EM results in less error in 2018 and a higher error in 2021. When there is a red tide in the OM, a matching EM results in less error in 2018 and more error in 2021.

Misspecifying the model does not increase the error, instead there is more error in 2021 and less error in 2018.

Notes: When there is no red tide in the OM, a matching EM results in less error in 2018 and a higher error in 2021. When there is a red tide in the OM, a matching EM results in less error in 2018 and more error in 2021.

Misspecifying the model does not increase the error, instead there is more error in 2021 and less error in 2018.

Relative Error

Warning: Removed 1600 rows containing non-finite outside the scale range
(`stat_summary()`).
Removed 1600 rows containing non-finite outside the scale range
(`stat_summary()`).

Warning: Removed 4080 rows containing non-finite outside the scale range
(`stat_summary()`).
Removed 4080 rows containing non-finite outside the scale range
(`stat_summary()`).

Warning: Removed 3400 rows containing non-finite outside the scale range
(`stat_summary()`).
Removed 3400 rows containing non-finite outside the scale range
(`stat_summary()`).

Warning: Removed 8640 rows containing non-finite outside the scale range
(`stat_summary()`).
Removed 8640 rows containing non-finite outside the scale range
(`stat_summary()`).

Warning: Removed 6180 rows containing non-finite outside the scale range
(`stat_summary()`).
Removed 6180 rows containing non-finite outside the scale range
(`stat_summary()`).

Other Explorations

Exploring Recruitment

“rec_dev” “raw_rec_dev” “Recruit_0”

Pull data from SS runs

This chunk takes a while to run and pulls the ss_output data from all iterations and all scenarios, it only saves the data that is listed, so selectivity, catage, batage, natage, and new CPUE indexes.

Selectivity Exploration

Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.

natage

batage

catage

CPUE

Selectivity Exploration Disc

Retention Exploration

Ro Exploration

Extracted the R0 from SR_LN_R0 from the summary$scalar.

Testing new plots

MAPE

Relative Error

Ratio EM:OM

# A tibble: 16 × 4
   scenario          year_type    ee_F ee_removals
   <fct>             <chr>       <dbl>       <dbl>
 1 no_rt             No Red Tide  7.22        19.0
 2 no_rt             Red Tide    10.2         42.9
 3 no_rt_x_rt_2      No Red Tide  6.06        18.2
 4 no_rt_x_rt_2      Red Tide    12.7        Inf  
 5 rt_2_x_no_rt      No Red Tide  6.81        19.1
 6 rt_2_x_no_rt      Red Tide    18.4         88.9
 7 rt_2_x_rt_2       No Red Tide  6.74        18.5
 8 rt_2_x_rt_2       Red Tide    16.9         82.0
 9 rt_2_x_rt_2_fixed No Red Tide  6.50        18.8
10 rt_2_x_rt_2_fixed Red Tide     9.10        42.6
11 no_rt_x_all_yrs   No Red Tide  7.48       Inf  
12 no_rt_x_all_yrs   Red Tide     8.83       Inf  
13 rt_2_x_all_yrs    No Red Tide  7.97       Inf  
14 rt_2_x_all_yrs    Red Tide    18.3         79.6
15 rep_3_x_all_yrs   No Red Tide 11.2        Inf  
16 rep_3_x_all_yrs   Red Tide    15.5         78.8
Warning: Removed 800 rows containing non-finite outside the scale range
(`stat_boxplot()`).

Warning: Removed 40 rows containing non-finite outside the scale range
(`stat_boxplot()`).

Testing more plots

Warning: Removed 1600 rows containing non-finite outside the scale range
(`stat_summary()`).
Removed 1600 rows containing non-finite outside the scale range
(`stat_summary()`).

Coordinate system already present. Adding new coordinate system, which will
replace the existing one.

Coordinate system already present. Adding new coordinate system, which will
replace the existing one.

Testing ratios

I think something is off about the EM:OM ratio in the previous plots so I’m going to try using the ratio_df from earlier.

Warning: Removed 54 rows containing non-finite outside the scale range
(`stat_summary()`).

Warning: Removed 800 rows containing non-finite outside the scale range
(`stat_summary()`).